<?php
if (!defined('IN_ZWS')) exit();

class UserRegModel extends Model {
	protected $tableName = 'User';
	protected $_validate = array(
		// array('验证字段','验证规则','错误提示','验证条件（0存在即验证（默认），1必须验证，2不为空时验证）','附加规则（function函数验证，callback方法验证，confirm验证两个字段是否相等，equal验证是否等于，in验证是否在范围内（数组），unique验证在数据库内是否唯一）','验证时间（1.新增数据时验证，2.编辑时验证，3.全部情况下验证）')
		array('username', 'require', '用户名不能为空！', 1),
		array('username', 'checklen', '用户名长度必须大于5位或小于15位！', 1, 'callback'),
		array('username', '', '该用户名已被注册！', 1, 'unique'),
		array('username', "/^[A-Za-z0-9_][chr(0xa1)-chr(0xff)]*/", '用户名必须由5~15位英文、数字、常见汉字或其组合组成！', 1, 'regex'),
		array('password', 'require', '密码不能为空！', 1),
		array('password', '/^[\w~!@#$%^&*()_+{}:"<>?\-=[\];\',.\/]{8,16}$/', '密码格式不正确！必须由8-6位常用字符（不含空格）组成', 1, 'regex'),
		// array('email', 'require', '邮箱不能为空！', 1),
		// array('email', '', '该邮箱已被注册！', 1, 'unique'),
		array('email', 'email', '邮箱格式不正确！', 1),
		);
	protected $_auto = array(
		array('salt', 'getSalt', 1, 'callback'),
		array('password', 'getPwd', 1, 'callback'),
		array('cip', 'getIp', 1, 'callback'),
		array('ctime', 'time', 1, 'function'),
		array('cptime', 'time', 1, 'function'),
		);
	protected $salt;

	function getPwd($data) {
		return md5(md5($data) . $this -> salt);
	}

	function getData() {
		return $this -> data;
	}

	function checklen($data) {
		return (strlen($data) > 15 || strlen($data) < 5) ? false : true;
	}

	function getIp() {
		return $_SERVER['REMOTE_ADDR'];
	}

	function getSalt() {
		import('ORG.Util.String');
		$this -> salt = String :: randString();
		return $this -> salt;
	}
}
